Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

551
Visualizações
El atributo Symfony #[CurrentUser] devuelve nulo
<?php declare(strict_types=1); namespace App\Controller\User; use App\Entity\User; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; use Symfony\Component\Security\Http\Attribute\CurrentUser; #[Route('/users', name: 'user.')] class UserController extends AbstractController { #[Route(name: 'list')] public function list(#[CurrentUser] ?User $user, Request $request): Response { dd($user->getFirstName()); }

Call to a member function getFirstName() on null

Pero estoy autorizado. En Symfony Profiler, muestra que estoy conectado.

Entorno: PHP 8.0.11 Symfony 5.3.9

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Los detalles correctos sobre la solución son proporcionados por https://stackoverflow.com/users/1144627/will-b El atributo Symfony #[CurrentUser] devuelve nulo

El problema es causado por ParamConvertor habilitado ( sensio/framework-extra-bundle ). No puede resolver el Usuario debido a la falta de definiciones de cómo obtener la Entidad de la base de datos, por lo que establece la variable $user en null debido al #[CurrentUser] ?User $user anulable. Si desea mantener la funcionalidad del convertidor de parámetros y el atributo #[CurrentUser] al mismo tiempo, debe deshabilitar la conversión automática #

 config/packages/sensio_framework_extra.yaml sensio_framework_extra: request: converters: true auto_convert: false

Y defina los parámetros de ruta cada vez manualmente. Fuentes: https://symfony.com/bundles/SensioFrameworkExtraBundle/current/annotations/converters.html https://symfony.com/blog/new-in-symfony-5-2-controller-argument-attributes https:// symfony.com/doc/current/controller/argument_value_resolver.html

Solución para evitar estos problemas: Lea los documentos al 200 % de la escala del navegador.

over 4 years ago · Santiago Trujillo Relatório

0

si su controlador extiende "AbstractController", puede usar $this->getUser() para obtener el usuario actual.

en su función de lista, no está dando una identificación de usuario ni un $ usuario, por lo que $ usuario es racionalmente nulo

 #[Route('/users', name: 'user.')] class UserController extends AbstractController { #[Route(name: 'list')] public function list( Request $request): Response { dd($this->getUser()->getFirstName()); }
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda